/* 
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/*
     Initialize and render the MenuBar when its elements are ready
     to be scripted.
*/

YAHOO.util.Event.onContentReady("menu", function () {

    var ua = YAHOO.env.ua,
        oAnim;  // Animation instance

    function onSubmenuBeforeShow(p_sType, p_sArgs) {
        var oBody,
            oElement,
            oShadow,
            oUL;

        if (this.parent) {
            oElement = this.element;

            oShadow = oElement.lastChild;
            oShadow.style.height = "0px";

            if (oAnim && oAnim.isAnimated()) {
                oAnim.stop();
                oAnim = null;
            }

            oBody = this.body;

            if (this.parent &&
                !(this.parent instanceof YAHOO.widget.MenuBarItem)) {

                if (ua.gecko || ua.opera) {
                    oBody.style.width = oBody.clientWidth + "px";
                }

                if (ua.ie == 7) {
                    oElement.style.width = oElement.clientWidth + "px";
                }
            }

            oBody.style.overflow = "hidden";

            oUL = oBody.getElementsByTagName("ul")[0];

            oUL.style.marginTop = ("-" + oUL.offsetHeight + "px");
        }
    }

    function onTween(p_sType, p_aArgs, p_oShadow) {
        if (this.cfg.getProperty("iframe")) {
            this.syncIframe();
        }

        if (p_oShadow) {
            p_oShadow.style.height = this.element.offsetHeight + "px";
        }
    }

    function onAnimationComplete(p_sType, p_aArgs, p_oShadow) {
        var oBody = this.body,
            oUL = oBody.getElementsByTagName("ul")[0];
        if (p_oShadow) {
            p_oShadow.style.height = this.element.offsetHeight + "px";
        }

        oUL.style.marginTop = "";
        oBody.style.overflow = "";

        if (this.parent &&
            !(this.parent instanceof YAHOO.widget.MenuBarItem)) {
            if (ua.gecko || ua.opera) {
                oBody.style.width = "";
            }

            if (ua.ie == 7) {
                this.element.style.width = "";
            }
        }
    }

    function onSubmenuShow(p_sType, p_sArgs) {
        var oElement,
            oShadow,
            oUL;
        if (this.parent) {
            oElement = this.element;
            oShadow = oElement.lastChild;
            oUL = this.body.getElementsByTagName("ul")[0];

            oAnim = new YAHOO.util.Anim(oUL,
                { marginTop: { to: 0 } },
                .5, YAHOO.util.Easing.easeOut);

            oAnim.onStart.subscribe(function () {
                oShadow.style.height = "100%";
            });

            oAnim.animate();

            if (YAHOO.env.ua.ie) {
                oShadow.style.height = oElement.offsetHeight + "px";
                oAnim.onTween.subscribe(onTween, oShadow, this);
            }

            oAnim.onComplete.subscribe(onAnimationComplete, oShadow, this);
        }
    }

    var oMenuBar = new YAHOO.widget.MenuBar("menu", {
                                                autosubmenudisplay: true,
                                                hidedelay: 750,
                                                lazyload: true });

    oMenuBar.subscribe("beforeShow", onSubmenuBeforeShow);
    oMenuBar.subscribe("show", onSubmenuShow);

    oMenuBar.render();
});